<?php

# -- DÉBUT NOTE DE LICENCE -------------------------------------
#
# Ce fichier fait partie de Clicpage.
#
# Copyright (c) 2010 Francois (www.clicpage.net)
# Distribué selon les termes de la licence GPL version 2.0.
# Consultez le fichier LICENCE ou
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- FIN NOTE DE LICENCE ---------------------------------------

class cpModulePages extends cpModuleAdmin
{
	
	
	
	
	
	protected $listePages;
	
	
	
		
	
	/// @name Initialisation
	//@{
	
	
	public function __construct($core)
	{
	
		parent::__construct($core);   
		
		# Instance de cpListePages
		$this->listePages = new cpListePages($this->core);
		$this->listePages->filtres();
		
		# Titre du module
		$this->setTitreModule(__('Pages'));
	
		# Boutons d'action
		if($this->core->auth->verifierPermission('pages')) {
			
			if(is_object($this->listePages->cat)) {
				$this->ajouterBoutonAction(__('Nouvelle page'), 'index.php?module=nouvellePage');
				
				if($this->core->auth->verifierPermission('creerCategorie')) {
					$this->ajouterBoutonAction(__('Nouveau dossier'), 'index.php?module=nouveauDossier');
				}
				
			}
			
			if($this->core->auth->verifierPermission('publierPage')) {
				$this->ajouterBoutonAction(__('Publier'), '#', 'boutonAction_publier');
			}
			
			$this->ajouterBoutonAction(__('Supprimer'), '#', 'boutonAction_supprimer');
			$this->ajouterBoutonAction(__('Déplacer'), '#', 'boutonAction_deplacer');
			
			if(is_object($this->listePages->cat) && $this->core->auth->verifierPermission('toutesPages')) {
				$this->ajouterBoutonAction(__('Définir accueil'), '#', 'boutonAction_definirAccueil');
				
				if($this->core->auth->verifierPermission('creerCategorie')) {
					$this->ajouterBoutonAction(__('Éditer le dossier'), 'index.php?module=modifierDossier&cat_id='.(integer) $this->listePages->cat->cat_id, 'boutonAction_modifierDossier');
				}
			}
			
		}
		
		# Actions autorisées
		$this->setActionsAutorisees('publierPages');
		
		# CSS et Javascript
		$this->setCSS('pages');
		$this->setJavascript('pages');
		
		# Messages
		if($_GET['success'] == 'deplacer') {
			$this->messageOK(__('Pages et/ou dossiers déplacés avec succès.'));
		}
		
	}
	//@}
    
	
	

	
	/// @name Formulaires
	//@{
	
	
	public function action_publierPages()
	{

		# Permission nécessaire: publierPage
		$this->core->auth->verifierPermission('publierPage', true);
		
		if(!empty($_POST['selection_pages']))
		{

			$params = array(
				'page_id' => array('=' => $_POST['selection_pages'])
			);
			
			if(!$this->core->auth->verifierPermission('toutesPages')) {
				$params['utilisateur_id'] = $this->core->auth->getUtilisateurID();
			}
	
			$pages = $this->core->site->getPages($params, CP_GET_STATIC, CP_TEMPORAIRE);
			
			while($pages->fetch()) {
				$pages->publier();
			}
			
			$this->messageOK(__('Les pages ont été publiées avec succès.'));
		
		}
		else {
			$this->ajouterMessageInfo(__('Aucune sélection'));
		}

	}
	//@} 
    
	

	
	
	/// @name Interface du module
	//@{
	
	
	public function interfaceModule()
	{

		$page = isset($_GET['page']) ? (integer) $_GET['page'] : 1;

		$dialog =
		'<div id="dialog-deplacer" title="'.__('Déplacer').'">'.
			'<fieldset>'.
				'<p>'.
					'<label for="deplacer_cat_id_sel">'.__('Déplacer les items sélectionnés dans').'</label>'.
					form::combo('deplacer_cat_id_sel', $this->core->site->getComboCategories()).
				'</p>'.
			'</fieldset>'.
			'<div>'.
				'<button class="ui-state-defaut" id="boutonDeplacer">'.__('Déplacer').'</button>'.
				'<button class="ui-state-defaut" id="boutonAnnulerDeplacer">'.__('Annuler').'</button>'.
			'</div>'.
		'</div>';
		
		$html =
			$dialog.
			$this->listePages->afficherFiltres().
			$this->listePages->afficherListe($page, CP_ADMIN_ITEMS_PAR_PAGE_PAGES, 
			'<form id="formulaireListePages" method="post" action="index.php?module=pages&cat_id='.$this->listePages->cat_id.'&statut='.$this->listePages->statut.'&rechercher='.urlencode($this->listePages->rechercher).'">'.
				form::hidden('action', '').
				form::hidden('deplacer_cat_id', '').
				$this->core->nonceHTML('publierPages').
				$this->afficherMessages().
				'%s'.
			'</form>');	
		
		return $html;

	}
	
	public function head()
	{
		return
		'<script type="text/javascript" language="javascript">
			var cat_id = "'.$this->listePages->cat_id.'";
			var parent_cat_id = "'.(is_object($this->listePages->cat) ? $this->listePages->cat->parent_cat_id : 0).'";
		</script>';
	}
	//@}
	
	
}

?>